/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.client.services;

import java.util.List;

import fr.generali.accueilclient.client.om.IClientRecherche;
import fr.generali.accueilclient.client.om.IPersonne;
import fr.generali.accueilclient.commun.exception.AccueilClientBusinessException;

/**
 * Service pour tout ce qui concerne les données de recherche client
 * 
 * @author selrhazala
 */
public interface IRechercheClientService {

    /**
     * Effectue la recherche client (P2 Bis)
     * 
     * @param criteres les critères de recherche
     * @return une liste de {@link IPersonne}
     * @throws AccueilClientBusinessException exception fonctionnelle
     */
    List<IPersonne> rechercherClientGenerique(IClientRecherche criteres) throws AccueilClientBusinessException;

    /**
     * Effectue une recherche client par un identifiant quelconque (numéro
     * contrat ...)
     * 
     * @param criteres les critères de recherche
     * @return une liste de clients
     * @throws AccueilClientBusinessException exception fonctionnelle
     */
    List<IPersonne> rechercherClientParIdNonQualifie(IClientRecherche criteres) throws AccueilClientBusinessException;

    /**
     * Effectue une recherche client par numéro de client agent / courtier
     * 
     * @param criteres les critères de recherche
     * @return une liste de clients
     * @throws AccueilClientBusinessException exception fonctionnelle
     */
    List<IPersonne> rechercherClientParNumeroClientAgent(IClientRecherche criteres) 
        throws AccueilClientBusinessException;
    
}
